class EmptyPCBGroupException(Exception):
    
    def __init__(self):
        Exception.__init__(self, "\n       [ try to get next item from empty PCBGroup ]")

class EmptyPCBListException(Exception):
    
    def __init__(self):
        Exception.__init__(self, "\n       [ try to get next item from empty PCBList ]")
        
class EmptyPCBManagerException(Exception):
    
    def __init__(self):
        Exception.__init__(self, "\n       [ try to get next item from empty PCBmanager ]")

class DeviceUnavailableException(Exception):    
    def __init__(self, owner):
        Exception.__init__(self, "\n       [ " + owner + " have not reference to device manager ]")
        
class NoPCBFinishedInIOException(Exception):
    def __init__(self):
        Exception.__init__(self, "\n       [ try to get a PCB from empty Turn list ]")
        
class PhysicalMemoryException(Exception):    
    def __init__(self, msg):
        Exception.__init__(self, msg)
        
class VirtualMemoryException(Exception):    
    def __init__(self, msg):
        Exception.__init__(self, msg)
        
class NoIdealBlock(Exception):    
    def __init__(self, msg):
        Exception.__init__(self, msg)